//返回星期几
export function getWeek(time = new Date()) {
    let date = new Date(time)
    let week = date.getDay()
    let result;
    switch (week) {
        case 0:
            result = "星期日";
            break;
        case 1:
            result = "星期一"
            break;
        case 2:
            result = "星期二"
            break;
        case 3:
            result = "星期三"
            break;
        case 4:
            result = "星期四"
            break;
        case 5:
            result = "星期五"
            break;
        case 6:
            result = "星期六"
            break;
    }

    return result
}

//返回当前日期前一天或后一天 
/**
 * 
 * @param {标记} sign 前一天:'preview'   后一天:'next'
 */
export function getPreOrNextDay(sign, time) {
    // 获取当前日期  
    const curDate = new Date(time);

    // 复制当前日期对象以避免修改原始对象  
    let targetDay = new Date(curDate);

    // 根据direction调整日期  
    if (sign === 'preview') {
        // 前一天  
        targetDay.setDate(targetDay.getDate() - 1);
    } else if (sign === 'next') {
        // 后一天  
        targetDay.setDate(targetDay.getDate() + 1);
    } else {
        // 如果传入了未知的方向，则默认返回今天  
        console.warn('未知标记，返回今日日期。');
        return curDate.toISOString().split('T')[0];
    }

    // 返回调整后的日期字符串  
    return targetDay.toISOString().split('T')[0];
}

//返回前一周或后一周
export function getPreOrNextWeek(sign, time = new Date()) {
    // 获取当前日期  
    const curDate = new Date(time);
   
    // 获取当前是周几（0代表周日，1代表周一，...，6代表周六）  
    const curDay = curDate.getDay();

    // 计算目标周的起始日期（周一）  
    let targetWeekStartDate = new Date(curDate);
    // 如果今天是周一，则直接根据direction调整  
    if (curDay === 1) {
        if (sign === 'preview') {
            targetWeekStartDate.setDate(targetWeekStartDate.getDate() - 7);
        } else if (sign === 'next') {
            // 已经是本周一，所以不需要调整  
        }
    } else {
        // 否则，计算本周一的日期  
        targetWeekStartDate.setDate(targetWeekStartDate.getDate() - curDay + 1);

        // 根据direction调整  
        if (sign === 'preview') {
            targetWeekStartDate.setDate(targetWeekStartDate.getDate() - 7);
        }
    }

    // 初始化结果数组  
    let weekDates = [];

    // 填充从星期一到星期日的日期  
    for (let i = 0; i < 7; i++) {
        weekDates.push(new Date(targetWeekStartDate));
        targetWeekStartDate.setDate(targetWeekStartDate.getDate() + 1);
    }
    
    // 返回日期数组，格式为YYYY-MM-DD  
    return weekDates.map(date => date.toISOString().split('T')[0]);
}



